home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Hyper / P / Portfolio.cpt / Home / stack.txt < prev   
Text File  |  1988-01-24  |  29KB  |  970 lines

  1. -- stack: in
  2. -- format: 8 (HyperCard 1)
  3. -- flags: 0x0 (none)
  4. -- protect password hash: 0
  5. -- maximum user level: 5 (scripting)
  6. -- window: Rect(x1=0, y1=0, x2=0, y2=0)
  7. -- screen: Rect(x1=0, y1=0, x2=0, y2=0)
  8. -- card dimensions: w=0 h=0
  9. -- scroll: x=0 y=0
  10. -- background count: 3
  11. -- first background id: 2282
  12. -- card count: 42
  13. -- first card id: 5341
  14. -- list block id: 4212
  15. -- print block id: 3372
  16. -- font table block id: 0
  17. -- style table block id: 0
  18. -- free block count: 0
  19. -- free size: 0 bytes
  20. -- total size: 100448 bytes
  21. -- stack block size: 26112 bytes
  22. -- created by hypercard version: 0x00000000
  23. -- compacted by hypercard version: 0x00000000
  24. -- modified by hypercard version: 0x00000000
  25. -- opened by hypercard version: 0x00000000
  26. -- patterns[0]: 0x0000000000000000
  27. -- patterns[1]: 0x0000220000002200
  28. -- patterns[2]: 0x8800220088002200
  29. -- patterns[3]: 0xCC003300CC003300
  30. -- patterns[4]: 0xCC883322CC883322
  31. -- patterns[5]: 0xEE88BB22EE88BB22
  32. -- patterns[6]: 0xEECCBB33EECCBB33
  33. -- patterns[7]: 0xFFCCFF33FFCCFF33
  34. -- patterns[8]: 0xFFEEFFBBFFEEFFBB
  35. -- patterns[9]: 0xFFFFFFBBFFFFFFBB
  36. -- patterns[10]: 0x8010022001084004
  37. -- patterns[11]: 0xFFFFFFFFFFFFFFFF
  38. -- patterns[12]: 0x8822882288228822
  39. -- patterns[13]: 0x1122448811224488
  40. -- patterns[14]: 0xC4800C6843023026
  41. -- patterns[15]: 0xB130031BD8C00C8D
  42. -- patterns[16]: 0xAA00AA00AA00AA00
  43. -- patterns[17]: 0x8822552288225522
  44. -- patterns[18]: 0x8855225588552255
  45. -- patterns[19]: 0x77DD77DD77DD77DD
  46. -- patterns[20]: 0x8000000000000000
  47. -- patterns[21]: 0xAA55AA55AA55AA55
  48. -- patterns[22]: 0x038448300C020101
  49. -- patterns[23]: 0x8244394482010101
  50. -- patterns[24]: 0x8814224188412214
  51. -- patterns[25]: 0x8080413E080814E3
  52. -- patterns[26]: 0x22048C7422179810
  53. -- patterns[27]: 0xBE808808EB088880
  54. -- patterns[28]: 0x25C8328964244C92
  55. -- patterns[29]: 0xA29C41BE2AC914EB
  56. -- patterns[30]: 0x40A00000040A0000
  57. -- patterns[31]: 0x8040200002040800
  58. -- patterns[32]: 0xAA00800088008000
  59. -- patterns[33]: 0xFF80808080808080
  60. -- patterns[34]: 0x081C22C180010204
  61. -- patterns[35]: 0xFF808080FF080808
  62. -- patterns[36]: 0xF87422478F172271
  63. -- patterns[37]: 0xBF00BFBFB0B0B0B0
  64. -- patterns[38]: 0xFF7FBE5DA2418000
  65. -- patterns[39]: 0xFAF5FAF5A050A050
  66. -- checksum: 0x0
  67. ----- HyperTalk script -----
  68. ------------------------------------------------------------------------
  69. -- QUITTING 'PORTFOLIO'
  70. ------------------------------------------------------------------------
  71.  
  72. On quit
  73.   Put the freesize of this stack into it
  74.   If it > 10000 then
  75.     Beep
  76.     Show message window at 20,302
  77.     Put "Wasted Space - "
  78.     Put it into word 5 of message window
  79.     Put " bytes in 'Portfolio'." into word 7 of message window
  80.     Answer "Before quitting; should I compact this stack?" with "No" or "Yes"
  81.   End if
  82.   If it = "Yes" then
  83.     Set cursor to 4
  84.     Hide message window
  85.     DoMenu Compact Stack
  86.   End if
  87. End quit
  88.  
  89. ------------------------------------------------------------------------
  90. -- STARTING 'PORTFOLIO'
  91. ------------------------------------------------------------------------
  92.  
  93. On StartUp
  94.   Show MenuBar
  95.   Hide message window
  96.   GetHomeInfo
  97.   Pass StartUp -- to a startUp XCMD, if present
  98. End StartUp
  99.  
  100. ------------------------------------------------------------------------
  101. -- RESUME 'PORTFOLIO'
  102. ------------------------------------------------------------------------
  103.  
  104. On resume
  105.   GetHomeInfo
  106.   Pass resume -- to a resume XCMD, if present
  107. End resume
  108.  
  109. ------------------------------------------------------------------------
  110. -- GET HOME INFORMATION
  111. ------------------------------------------------------------------------
  112.  
  113. On GetHomeInfo
  114.   Global stacks,applications,documents,UserName,action
  115.   Set LockScreen to true
  116.   Set LockMessages to true
  117.   Push this card
  118.   Put "Launch" into action
  119.   Go to card "User Preferences" of stack "Home"
  120.   Put card field "User Name" into UserName
  121.   Set UserLevel to card field "User Level"
  122.   Set PowerKeys to the hilite of button "Power Keys"
  123.   Set BlindTyping to the hilite of button "Blind Typing"
  124.   Put field "paths" of card "stacks" into stacks
  125.   Put field "paths" of card "applications" into applications
  126.   Put field "paths" of card "documents" into documents
  127.   Pop card
  128.   Set LockScreen to false
  129.   Set LockMessages to false
  130. End GetHomeInfo
  131.  
  132. ------------------------------------------------------------------------
  133. -- SEARCH SCRIPT
  134. ------------------------------------------------------------------------
  135.  
  136. On SearchScript pattern,StackName -- search all scripts of a stack
  137.   Set LockMessages to true
  138.   If StackName is not empty then go to stack StackName
  139.  
  140.   If the script of this stack contains pattern
  141.   Then edit script of this stack
  142.  
  143.   Repeat with i = 1 to the number of bkgnds
  144.     Go to card 6 of bkgnd i
  145.     If the script of this bkgnd contains pattern
  146.     Then edit script of bkgnd
  147.  
  148.     Repeat with j = 1 to the number of bkgnd buttons
  149.       If the script of bkgnd button j contains pattern
  150.       Then edit script of bkgnd button j
  151.     End repeat
  152.  
  153.     Repeat with j = 1 to the number of bkgnd fields
  154.       If the script of bkgnd field j contains pattern
  155.       Then edit script of bkgnd field j
  156.     End repeat
  157.  
  158.   End repeat
  159.  
  160.   Repeat with i = 1 to the number of cards
  161.     Go card i
  162.     If the script of this card contains pattern
  163.     Then edit script of this card
  164.  
  165.     Repeat with j = 1 to the number of card buttons
  166.       If the script of card button j contains pattern
  167.       Then edit script of card button j
  168.     End repeat
  169.  
  170.     Repeat with j = 1 to the number of card fields
  171.       If the script of card field j contains pattern
  172.       Then edit script of card field j
  173.     End repeat
  174.  
  175.   End repeat
  176.   Set lockMessages to false
  177. End searchScript
  178.  
  179. ------------------------------------------------------------------------
  180. -- LAST PATH NAME
  181. ------------------------------------------------------------------------
  182.  
  183. Function LastPathComponent name
  184. Repeat with i = the length of name down to 1
  185.   If character i of name is ":" then exit repeat
  186. End repeat
  187. If i is 1 then
  188.   If first character of name is ":" then
  189.     Put 2 into i
  190.   End if
  191. Else
  192.   Add 1 to i
  193. End if
  194. Put empty into LastPath
  195. Repeat with j = i to the length of name
  196.   Put character j of name after LastPath
  197. End repeat
  198. Return LastPath
  199. End LastPathComponent
  200.  
  201. ------------------------------------------------------------------------
  202. -- DELETE LAST PART OF LONG NAME
  203. ------------------------------------------------------------------------
  204.  
  205. Function DeleteLastPart LongName
  206. Put the length of LongName into LenghtOfName
  207. Repeat with i = LenghtOfName down to 1
  208.   If char i of LongName = ":" then exit repeat
  209.   Delete char I of LongName
  210. End Repeat
  211. Return LongName
  212. End DeleteLastPart
  213.  
  214. ------------------------------------------------------------------------
  215. -- BUTTON NAME
  216. ------------------------------------------------------------------------
  217.  
  218. Function ButtonName LongName
  219. Put the length of LongName into LastChar
  220. Repeat with i = LastChar down to 1
  221.   If char i of LongName = ":" then exit repeat
  222. End repeat
  223. Return char (i + 1) to LastChar of LongName
  224. End ButtonName
  225.  
  226. ------------------------------------------------------------------------
  227. -- SYSTEM ERRORS
  228. ------------------------------------------------------------------------
  229.  
  230. On OSERR err
  231.   If err > 0 then -- XFCN convention
  232.     Put "Parameter error with function" into errstr
  233.   Else if err is -59 then
  234.     Put "Problem during rename" into errstr
  235.   Else if err is -54 then
  236.     Put "Attempt to open locked file for writing" into errstr
  237.   Else if err is -46 then
  238.     Put "Volume locked by software" into errstr
  239.   Else if err is -45 then
  240.     Put "File locked" into errstr
  241.   Else if err is -44 then
  242.     Put "Volume locked by hardware" into errstr
  243.   Else if err is -43 then
  244.     Put "File not found" into errstr
  245.   Else if err is -37 then
  246.     Put "Bad volume or file name" into errstr
  247.   Else if err is -36 then
  248.     Put "I/O error" into errstr
  249.   Else if err is -35 then
  250.     Put "No such volume" into errstr
  251.   Else if err is -34 then
  252.     Put "Disk is full" into errstr
  253.   Else if err is -49 then
  254.     Put "File already open for writing" into errstr
  255.   Else
  256.     Put "Failed with error" && err into errstr
  257.   End if
  258.   Answer Errstr with "OK"
  259. End OSERR
  260.  
  261. ------------------------------------------------------------------------
  262. -- ADD HYPERCARD STACK
  263. ------------------------------------------------------------------------
  264.  
  265. On AddStack
  266.   Set LockScreen to true
  267.   Show message window at 20,302
  268.   Put "Please select the HyperCard 'STACK' that you wish to add to this card."
  269.   Put FileName("STAK") into StackName
  270.   If StackName = empty then
  271.     Put ""
  272.     Set LockScreen to false
  273.     Choose browse tool
  274.     Hide message window
  275.     Exit AddStack
  276.   End if
  277.   Set cursor to 4
  278.   Put "One Moment, Please..."
  279.   Get short name of StackName
  280.   Put it into ShortStackName
  281.   DoMenu "New Button"
  282.   Set style of button "New Button" to transparent
  283.   Set rect of button "New Button" to 220,150,315,198
  284.   Set icon of button "New Button" to 1000
  285.   Put "On MouseUp -- Stack" & return into ScriptMaker
  286.   Put "Global LongName" & return after ScriptMaker
  287.   Put "Put " & quote & StackName & quote & " into LongName" & return after ScriptMaker
  288.   Put "LaunchStack" & return after ScriptMaker
  289.   Put "End MouseUp" & return & return after ScriptMaker
  290.   Put "--" & return after ScriptMaker
  291.   Put "-- FOR 'PORTFOLIO' TO FUNCTION CORRECTLY; DO NOT MODIFY THIS SCRIPT!" & return after ScriptMaker
  292.   Put "--" & return after ScriptMaker
  293.   Set script of button "New Button" to ScriptMaker
  294.   Set name of button "New Button" to ShortStackName
  295.   Choose browse tool
  296.   Set LockScreen to false
  297.   Show message window at 20,35
  298.   Put "Press COMMAND KEY down; CLICK and DRAG icon into position."
  299.   Exit AddStack
  300. End AddStack
  301.  
  302. ------------------------------------------------------------------------
  303. -- ADD STAND ALONE APPLICATION
  304. ------------------------------------------------------------------------
  305.  
  306. On AddApplication
  307.   Set LockScreen to true
  308.   Show message window at 20,302
  309.   Put "Please select the 'APPLICATION' that you wish to add to this card."
  310.   Put FileName("APPL") into ApplicationName
  311.   If ApplicationName is empty then
  312.     Put ""
  313.     Set LockScreen to false
  314.     Choose browse tool
  315.     Hide message window
  316.     Exit AddApplication
  317.   End if
  318.   Set cursor to 4
  319.   Put "One Moment, Please..."
  320.   Put ButtonName(ApplicationName) into ApplicationFile
  321.   DoMenu "New Button"
  322.   Get the long name of this stack
  323.   Put it into StackName
  324.   If icon of button "New Button" is not 0 then
  325.     Put icon of button "New Button" into DeleteIcon
  326.     KillResID StackName,"ICON",DeleteIcon
  327.   End if
  328.   Put GetAppIcon(ApplicationName,ApplicationFile,StackName) into AddIcon
  329.   UpdateResFork
  330.   Set icon of button "New Button" to AddIcon
  331.   Set style of button "New Button" to transparent
  332.   Set rect of button "New Button" to 220,150,315,198
  333.   Put "On MouseUp -- Application" & return into ScriptMaker
  334.   Put "Global LongName" & return after ScriptMaker
  335.   Put "Put " & quote & ApplicationName & quote & " into LongName" & return after ScriptMaker
  336.   Put "LaunchApplication" & return after ScriptMaker
  337.   Put "End MouseUp" & return & return after ScriptMaker
  338.   Put "--" & return after ScriptMaker
  339.   Put "-- FOR 'PORTFOLIO' TO FUNCTION CORRECTLY; DO NOT MODIFY THIS SCRIPT!" & return after ScriptMaker
  340.   Put "--" & return after ScriptMaker
  341.   Set script of button "New Button" to ScriptMaker
  342.   Set name of button "New Button" to ApplicationFile
  343.   Choose browse tool
  344.   Set LockScreen to false
  345.   Show message window at 20,35
  346.   Put "Press COMMAND KEY down; CLICK and DRAG icon into position."
  347.   Exit AddApplication
  348. End AddApplication
  349.  
  350. ------------------------------------------------------------------------
  351. -- ADD DOCUMENT
  352. ------------------------------------------------------------------------
  353.  
  354. On AddDocument
  355.   Set LockScreen to true
  356.   Show message window at 20,302
  357.   Put "First select the 'APPLICATION' that will open the document."
  358.   Put FileName("APPL") into ApplicationFile
  359.   If ApplicationFile = empty then
  360.     Put ""
  361.     Set lockScreen to false
  362.     Choose browse tool
  363.     Hide message window
  364.     Exit AddDocument
  365.   End if
  366.   Put "Now select the 'DOCUMENT' that you wish to add to this card."
  367.   Put FileName() into DocumentFile
  368.   If DocumentFile = empty then
  369.     Put ""
  370.     Set LockScreen to false
  371.     Choose browse tool
  372.     Hide message window
  373.     Exit AddDocument
  374.   End if
  375.   Set cursor to 4
  376.   Put "One Moment, Please..."
  377.   Put ButtonName(DocumentFile) into DocumentName
  378.   DoMenu "New Button"
  379.   Get the long name of this stack
  380.   Put it into StackName
  381.   If icon of button "New Button" is not 0 then
  382.     Put icon of button "New Button" into DeleteIcon
  383.     KillResID StackName,"ICON",DeleteIcon
  384.   End if
  385.   Put GetDocIcon(ApplicationFile,DocumentFile,StackName) into AddIcon
  386.   UpdateResFork
  387.   Set icon of button "New Button" to AddIcon
  388.   Set style of button "New Button" to transparent
  389.   Set rect of button "New Button" to 220,150,315,198
  390.   Put "On MouseUp -- Document" & return into ScriptMaker
  391.   Put "Global LongName" & return after ScriptMaker
  392.   Put "Put " & quote & DocumentFile & "," & ApplicationFile & quote & " into LongName" & return after ScriptMaker
  393.   Put "LaunchDocument" & return after ScriptMaker
  394.   Put "End MouseUp" & return & return after ScriptMaker
  395.   Put "--" & return after ScriptMaker
  396.   Put "-- FOR 'PORTFOLIO' TO FUNCTION CORRECTLY; DO NOT MODIFY THIS SCRIPT!" & return after ScriptMaker
  397.   Put "--" & return after ScriptMaker
  398.   Set script of button "New Button" to ScriptMaker
  399.   Set name of button "New Button" to DocumentName
  400.   Choose browse tool
  401.   Set LockScreen to false
  402.   Show message window at 20,35
  403.   Put "Press COMMAND KEY down; CLICK and DRAG icon into position."
  404.   Exit AddDocument
  405. End AddDocument
  406.  
  407. ------------------------------------------------------------------------
  408. -- ADD DESK ACCESSORY
  409. ------------------------------------------------------------------------
  410.  
  411. On AddDA
  412.   Set LockScreen to true
  413.   Show message window at 20,302
  414.   Put "NOTE: the DA must be installed in your system for this to work."
  415.   Ask "Type the exact name of the Desk Accessory?"
  416.   If it is not empty then
  417.     Put it into DaName
  418.     DoMenu New Button
  419.     Set cursor to 4
  420.     Set icon of button "New Button" to 18499
  421.     Set style of button "New Button" to transparent
  422.     Set rect of button "New Button" to 220,150,315,198
  423.     Put "On MouseUp -- DA" & return into ScriptMaker
  424.     Put "Global LongName" & return after ScriptMaker
  425.     Put "Put " & quote & it & quote & " into LongName" & return after ScriptMaker
  426.     Put "LaunchDA" & return after ScriptMaker
  427.     Put "End MouseUp" & return & return after ScriptMaker
  428.     Put "--" & return after ScriptMaker
  429.     Put "-- FOR 'PORTFOLIO' TO FUNCTION CORRECTLY; DO NOT MODIFY THIS SCRIPT!" & return after ScriptMaker
  430.     Put "--" & return after ScriptMaker
  431.     Set script of button "New Button" to ScriptMaker
  432.     Set name of button "New Button" to DaName
  433.   End if
  434.   Choose browse tool
  435.   Set LockScreen to false
  436.   Show message window at 20,35
  437.   Put "Press COMMAND KEY down; CLICK and DRAG icon into position."
  438.   Exit AddDA
  439. End AddDA
  440.  
  441. ------------------------------------------------------------------------
  442. -- DELETE ANY FILE
  443. ------------------------------------------------------------------------
  444.  
  445. On TrashAny
  446.   Show message window at 20,302
  447.   Put "Please select the file that you wish to 'DELETE'."
  448.   Put FileName() into LongName
  449.   If LongName is empty then
  450.     Put ""
  451.     Set LockScreen to false
  452.     Hide message window
  453.     Exit TrashAny
  454.   End if
  455.   Set cursor to 4
  456.   Put LastPathComponent(LongName) into NewName
  457.   Put "Delete File - "
  458.   Put NewName into word 7 of message window
  459.   Beep
  460.   Answer "Are you sure you want to delete this file?" with "Yes" or "No"
  461.   If it is "No" then
  462.     Put""
  463.     Set LockScreen to false
  464.     Hide message window
  465.     Exit TrashAny
  466.   End if
  467.   Put DeleteFile(LongName) into trash
  468.   If trash = 0 then
  469.     Put "The file has been deleted from your disk."
  470.     Wait 3 seconds
  471.     Put""
  472.     Set LockScreen to false
  473.     Hide message window
  474.     Exit TrashAny
  475.   End if
  476.   If trash < 0 then
  477.     Beep 2
  478.     OSERR trash
  479.   Else
  480.     Beep 2
  481.     Answer "Sorry, there was an un-define error!"
  482.     Exit trashAny
  483.   End if
  484.   Exit TrashAny
  485. End TrashAny
  486.  
  487. ------------------------------------------------------------------------
  488. -- RENAME ANY FILE
  489. ------------------------------------------------------------------------
  490.  
  491. On RenameAny
  492.   Show message window at 20,302
  493.   Put "Please select the file that you wish to 'RENAME'."
  494.   Put FileName() into LongName
  495.   If LongName is empty then
  496.     Put""
  497.     Set LockScreen to false
  498.     Hide message window
  499.     Exit RenameAny
  500.   End if
  501.   Hide message window
  502.   Put LastPathComponent(LongName) into NewName
  503.   Beep
  504.   Ask "Rename this file to:" with NewName
  505.   If it is NewName or it is empty then
  506.     Put""
  507.     Set LockScreen to false
  508.     Hide message window
  509.     Exit RenameAny
  510.   End if
  511.   Put the length of it into container
  512.   If container > 25 then
  513.     Beep 2
  514.     Answer "Sorry, name is too long!"
  515.     Put""
  516.     Set LockScreen to false
  517.     Hide message window
  518.     Exit RenameAny
  519.   End if
  520.   Set cursor to 4
  521.   Put RenameFile(LongName,it) into NewFile
  522.   If NewFile = 0 then
  523.     Put "The file on your disk has been renamed."
  524.     Wait 3 seconds
  525.     Put ""
  526.     Set LockScreen to false
  527.     Hide message window
  528.     Exit RenameAny
  529.   Else
  530.     If NewFile < 0 then
  531.       Beep 2
  532.       OSERR NewFile
  533.     Else
  534.       Beep 2
  535.       Answer "Sorry, there was an un-define error!"
  536.       Exit RenameAny
  537.     End if
  538.   End if
  539. End RenameAny
  540.  
  541. ------------------------------------------------------------------------
  542. -- SHUT DOWN COMPUTER
  543. ------------------------------------------------------------------------
  544.  
  545. On ShutOff
  546.   Beep
  547.   Answer "Are you ready to 'SHUTDOWN' the computer:" with "Yes" or "No"
  548.   If it is "No" then
  549.     Set LockScreen to false
  550.     Exit ShutOff
  551.   End if
  552.   Put the freesize of this stack into it
  553.   If it > 10000 then
  554.     Beep
  555.     Show message window at 20,302
  556.     Put "Wasted Space - "
  557.     Put it into word 5 of message window
  558.     Put " bytes in 'Portfolio'." into word 7 of message window
  559.     Answer "Before Shut Down; should I compact this stack?" with "No" or "Yes"
  560.     If it = "Yes" then
  561.       Set cursor to 4
  562.       Hide message window
  563.       DoMenu Compact Stack
  564.     end if
  565.   end if
  566.   ShutDown
  567. End ShutOff
  568.  
  569. ------------------------------------------------------------------------
  570. -- SCAN ALL CARDS
  571. ------------------------------------------------------------------------
  572.  
  573. On ScanCards
  574.   Beep
  575.   Answer "Please choose a display speed:" with "Slow" or "Fast" or "Cancel"
  576.   If it is "Cancel" then
  577.     Set LockScreen to False
  578.     Exit ScanCards
  579.   End if
  580.   Set cursor to 4
  581.   Show message window at 20,302
  582.   Put "To stop browsing, just click the 'MOUSE BUTTON'."
  583.   Wait 3 seconds
  584.   Put ""
  585.   Hide message window
  586.   If it is "Fast" then
  587.     Wait 2 seconds
  588.     Show all cards
  589.   Else
  590.     Repeat for number of cards
  591.       Wait 3 seconds
  592.       If the MouseClick then
  593.         Exit repeat
  594.       End if
  595.       Visual effect barn door open
  596.       Go to next card
  597.     End repeat
  598.   End if
  599. End ScanCards
  600.  
  601. ------------------------------------------------------------------------
  602. -- Launch Application
  603. ------------------------------------------------------------------------
  604.  
  605. On LaunchApplication
  606.   Global Action
  607.   If Action = "Abort" then
  608.     Put "Launch" into action
  609.     Exit LaunchApplication
  610.   End if
  611.   Set cursor to 4
  612.   Global LongName
  613.   If MultiFinder() is true then
  614.     If IsRunning(short name of the target) is true then
  615.       Beep
  616.       Answer "Use MultiFinder; Application is running!"
  617.     Else
  618.       Put SubLaunch (LongName) into OutCome
  619.       If OutCome < 0 then OSERR OutCome
  620.       Else
  621.         If OutCome > 0 then beep
  622.       End if
  623.     End if
  624.   Else
  625.     Open LongName
  626.   End if
  627. End LaunchApplication
  628.  
  629. ------------------------------------------------------------------------
  630. -- LAUNCH DOCUMENT
  631. ------------------------------------------------------------------------
  632.  
  633. On LaunchDocument
  634.   Global Action
  635.   If Action = "Abort" then
  636.     Put "Launch" into action
  637.     Exit LaunchDocument
  638.   End if
  639.   Set cursor to 4
  640.   Global LongName
  641.   Put ButtonName(LongName) into ApplicationName
  642.   Put second item of LongName into ApplicationPath
  643.   Put first item of LongName into DocumentPath
  644.   If MultiFinder() is true then
  645.     If IsRunning(ApplicationName) is true then
  646.       Beep
  647.       Answer "Use MultiFinder; document is open!"
  648.     Else
  649.       Put SubLaunch(ApplicationPath,DocumentPath) into OutCome
  650.       If OutCome < 0 then OSERR OutCome
  651.       Else if OutCome > 0 then beep
  652.     End if
  653.   Else
  654.     Open DocumentPath with ApplicationPath
  655.   End if
  656. End LaunchDocument
  657.  
  658. ------------------------------------------------------------------------
  659. -- LAUNCH STACK
  660. ------------------------------------------------------------------------
  661.  
  662. On LaunchStack
  663.   Global Action
  664.   If Action = "Abort" then
  665.     Put "Launch" into action
  666.     Exit LaunchStack
  667.   End if
  668.   Set cursor to 4
  669.   Global LongName
  670.   Push card
  671.   Visual effect zoom open
  672.   Go to LongName
  673. End LaunchStack
  674.  
  675. ------------------------------------------------------------------------
  676. -- LAUNCH DA
  677. ------------------------------------------------------------------------
  678.  
  679. On LaunchDA
  680.   Global Action
  681.   If Action = "Abort" then
  682.     Put "Launch" into action
  683.     Exit LaunchDA
  684.   End if
  685.   Set cursor to 4
  686.   Global LongName
  687.   Push card
  688.   Visual effect zoom open
  689.   DoMenu LongName
  690. End LaunchDA
  691.  
  692. ------------------------------------------------------------------------
  693. -- DIRECT LAUNCH APPLICATION
  694. ------------------------------------------------------------------------
  695.  
  696. On DirectLaunch
  697.   Set LockScreen to true
  698.   Show message window at 20,302
  699.   Put "You may now 'LAUNCH' into and return from any application."
  700.   Global LongName
  701.   Put FileName("APPL") into LongName
  702.   If LongName is not empty then
  703.     Set cursor to 4
  704.     LaunchApplication
  705.   End if
  706.   Put ""
  707.   Set LockScreen to false
  708.   Hide message window
  709. End DirectLaunch
  710.  
  711. ------------------------------------------------------------------------
  712. -- REMOVE BUTTON FROM CARD
  713. ------------------------------------------------------------------------
  714.  
  715. On RemoveButton
  716.   Global ShortName
  717.   Beep
  718.   Answer "Remove that button from this card?" with "Yes" or "NO"
  719.   If it = "No" then
  720.     Choose browse tool
  721.     Put ""
  722.     Set LockScreen to false
  723.     Hide message window
  724.     Exit RemoveButton
  725.   End If
  726.   Set cursor to 4
  727.   Get the long name of this stack
  728.   Put it into StackName
  729.   Put icon of button ShortName into DeleteIcon
  730.   KillResID StackName,"ICON",DeleteIcon
  731.   DoMenu Cut Button
  732.   Choose browse tool
  733.   Put ""
  734.   Set LockScreen to false
  735.   Hide message window
  736.   Exit RemoveButton
  737. End RemoveButton
  738.  
  739. ------------------------------------------------------------------------
  740. -- DELETE BUTTON / FILE ON CARD AND DISK
  741. ------------------------------------------------------------------------
  742.  
  743. On DeleteFileButton
  744.   Global ShortName
  745.   Beep
  746.   Answer "Delete button / file from card / disk?" with "Yes" or "NO"
  747.   If it = "No" then
  748.     Choose browse tool
  749.     Put ""
  750.     Set LockScreen to false
  751.     Hide message window
  752.     Exit DeleteFileButton
  753.   End if
  754.   Set cursor to 4
  755.   Get script of button ShortName
  756.   Put it into container
  757.   If container is empty then
  758.     Choose browse tool
  759.     Put ""
  760.     Set LockScreen to false
  761.     Hide message window
  762.     Exit DeleteFileButton
  763.   End if
  764.   Get line 1 of container
  765.   Put it into Type
  766.   Get word 4 of Type
  767.   Put it into ScriptType
  768.   If ScriptType ="DA" then
  769.     RemoveDA
  770.     Exit DeleteFileButton
  771.   End If
  772.   If ScriptType ="Document" then
  773.     Beep 2
  774.     Answer "Document deleting not yet available." with "OK"
  775.     Choose browse tool
  776.     Put""
  777.     Set LockScreen to false
  778.     Hide message window
  779.     Exit DeleteFileButton
  780.   End if
  781.   Get line 3 of container
  782.   Put it into NewContainer
  783.   Get word 2 of NewContainer
  784.   Put it into Container
  785.   Delete first char of container
  786.   Delete last char of container
  787.   Put container into LongName
  788.   If LongName is empty then
  789.     Put ""
  790.     Set LockScreen to false
  791.     Hide message window
  792.     Exit DeleteFileButton
  793.   End if
  794.   Put DeleteFile(LongName) into trash
  795.   If trash = 0 then
  796.     Get the long name of this stack
  797.     Put it into StackName
  798.     Put icon of button ShortName into DeleteIcon
  799.     KillResID StackName,"ICON",DeleteIcon
  800.     DoMenu Cut Button
  801.     Choose browse tool
  802.     Put "The button / file on your card / disk has been deleted."
  803.     Wait 3 Seconds
  804.     Put ""
  805.     Set LockScreen to false
  806.     Hide message window
  807.     Exit DeleteFileButton
  808.   End if
  809.   If trash < 0 then
  810.     Beep 2
  811.     OSERR trash
  812.   Else
  813.     Beep 2
  814.     Answer "Sorry, there was an un-define error!"
  815.   End if
  816.   Choose browse tool
  817.   Put ""
  818.   Set LockScreen to false
  819.   Hide message window
  820.   Exit DeleteFileButton
  821. End DeleteFileButton
  822.  
  823. ----- REMOVE DA'S
  824.  
  825. On RemoveDA
  826.   DoMenu Cut Button
  827.   Choose browse tool
  828.   Put "The DA button has been deleted from your card."
  829.   Wait 3 Seconds
  830.   Put ""
  831.   Set LockScreen to false
  832.   Hide message window
  833.   Exit RemoveDA
  834. End RemoveDA
  835.  
  836. ------------------------------------------------------------------------
  837. -- RENAME BUTTON / FILE ON CARD AND DISK
  838. ------------------------------------------------------------------------
  839.  
  840. On RenameFileButton
  841.   Global ShortName, NewName, ScriptType
  842.   Beep
  843.   Ask "Rename this file to:" with ShortName
  844.   If it is ShortName or it is empty then
  845.     Choose browse tool
  846.     Put""
  847.     Set LockScreen to false
  848.     Hide message window
  849.     Exit RenameFileButton
  850.   End if
  851.   Put it into NewName
  852.   Put the length of it into container
  853.   If container > 25 then
  854.     Beep 2
  855.     Answer "Sorry, name is too long!"
  856.     Put""
  857.     Set LockScreen to false
  858.     Hide message window
  859.     Exit RenameFileButton
  860.   End if
  861.   Set cursor to 4
  862.   Get script of button ShortName
  863.   Put it into container
  864.   If container is empty then
  865.     Choose browse tool
  866.     Put ""
  867.     Set LockScreen to false
  868.     Hide message window
  869.     Exit RenameFileButton
  870.   End if
  871.   Get line 1 of container
  872.   Put it into Type
  873.   Get word 4 of Type
  874.   Put it into ScriptType
  875.   If ScriptType ="DA" then
  876.     RenameDA
  877.     Exit RenameFileButton
  878.   End if
  879.   If ScriptType ="Document" then
  880.     Beep 2
  881.     Answer "Document renaming not yet available." with "OK"
  882.     Choose browse tool
  883.     Put""
  884.     Set LockScreen to false
  885.     Hide message window
  886.     Exit RenameFileButton
  887.   End if
  888.   If ScriptType ="Application" then
  889.     RenameTheFile
  890.     Exit RenameFileButton
  891.   End if
  892.   If ScriptType ="Stack" then
  893.     RenameTheFile
  894.     Exit RenameFileButton
  895.   End if
  896. End RenameFileButton
  897.  
  898. ----- RENAME APPLICATIONS & STACKS
  899.  
  900. On RenameTheFile
  901.   Global ShortName, NewName, ScriptType
  902.   If scriptType = "Application" then put "LaunchApplication" into ThisWay
  903.   If scriptType = "Stack" then put "LaunchStack" into ThisWay
  904.   Get script of button ShortName
  905.   Put it into container
  906.   Get line 3 of container
  907.   Put it into NewContainer
  908.   Get word 2 of NewContainer
  909.   Put it into Container
  910.   Delete first char of container
  911.   Delete last char of container
  912.   Put container into LongName
  913.   If LongName is empty then
  914.     Choose browse tool
  915.     Put ""
  916.     Set LockScreen to false
  917.     Hide message window
  918.     Exit RenameTheFile
  919.   End if
  920.   Put RenameFile(LongName,NewName) into NewFile
  921.   If NewFile = 0 then
  922.     Put DeleteLastPart(LongName)&NewName into NewPathName
  923.     Put "On MouseUp -- " & ScriptType & return into ScriptMaker
  924.     Put "Global LongName" & return after ScriptMaker
  925.     Put "Put " & quote & NewPathName & quote & " into LongName" & return after ScriptMaker
  926.     Put ThisWay & return after ScriptMaker
  927.     Put "End MouseUp" & return & return after ScriptMaker
  928.     Put "--" & return after ScriptMaker
  929.     Put "-- FOR 'PORTFOLIO' TO FUNCTION CORRECTLY; DO NOT MODIFY THIS SCRIPT!" & return after ScriptMaker
  930.     Put "--" & return after ScriptMaker
  931.     Set script of button ShortName to ScriptMaker
  932.     Set name of button ShortName to NewName
  933.     Put "The file on your disk and card has been renamed."
  934.     Wait 3 seconds
  935.     Choose browse tool
  936.     Put ""
  937.     Set LockScreen to false
  938.     Hide message window
  939.     Exit RenameTheFile
  940.   Else
  941.     If NewFile < 0 then
  942.       Beep 2
  943.       OSERR NewFile
  944.     Else
  945.       Beep 2
  946.       Answer "Sorry, there was an un-define error!"
  947.       Exit RenameTheFile
  948.     End if
  949.   End if
  950. End RenameTheFile
  951.  
  952. ----- RENAME DA'S
  953.  
  954. On RenameDA
  955.   Global NewName, ShortName
  956.   Put "On MouseUp -- DA" & return into ScriptMaker
  957.   Put "DoMenu " & quote & NewName & quote & return after ScriptMaker
  958.   Put "End MouseUp" & return after ScriptMaker
  959.   Set script of button ShortName to ScriptMaker
  960.   Set name of button ShortName to NewName
  961.   Put " Have renamed DA on card only. Can not rename installed system DA."
  962.   Wait 3 Seconds
  963.   Choose browse tool
  964.   Put""
  965.   Set LockScreen to false
  966.   Hide message window
  967. End RenameDA
  968.  
  969.  
  970.